﻿@model Bricks.Business.Models.Account.ActionInfo

@{
    ViewBag.Title = "功能管理";
    Layout = "~/Views/Shared/_UserPage.cshtml";
}

@*实现对EasyUI的DataGird控件操作的JS代码*@
<script type="text/javascript">
    $(function () {
        //当页面首次刷新的时候执行的事件
        initTable();
    });
    //实现对DataGird控件的绑定操作

    function initTable(queryData) {
        $('#myDataGrid').datagrid({   //定位到Table标签，Table标签的ID是myDataGrid
            //   ActionInfo是控制器，GetData是控制器中获取用户数据的一个Action
            url: '/ActionInfo/GetDataList',   //指向后台的Action来获取当前用户的信息的Json格式的数据
            //title: '功能管理',  //标识
            iconCls: 'icon-bricks',
            //width: 'auto',
            //height: 500,
            nowrap: true,
            autoRowHeight: false,
            striped: true,
            collapsible: true,
            pagination: false,
            //pageSize: 20,
            rownumbers: true,
            //sortName: 'ID',    //根据某个字段给easyUI排序
            //sortOrder: 'asc',
            remoteSort: false,
            idField: 'ID',
            checkOnSelect: true,
            selectOnCheck: true,
            singleSelect: true,
            queryParams: queryData,  //异步查询的参数
            toolbar: '#myToolBar',
            columns: [[
                {
                    title: '@Html.LabelFor(model => model.Icon)', field: 'Icon', width: 35, sortable: false, align: "center",
                    formatter: function (value, row, index) {
                        if (value) {
                            return $.GetIcon(value);  //图标
                        }
                    }
                },
                { title: '@Html.LabelFor(model => model.ActionName)', field: 'ActionName', width: 100, sortable: true },
                { title: '@Html.LabelFor(model => model.ActionCode)', field: 'ActionCode', width: 100, sortable: true },
                { title: '@Html.LabelFor(model => model.ActionTypeNum)', field: 'ActionTypeString', width: 80, sortable: true },
                { title: '@Html.LabelFor(model => model.OrderNo)', field: 'OrderNo', width: 60, sortable: true },
                { title: '@Html.LabelFor(model => model.Description)', field: 'Description', width: 120, sortable: true },
                @*{
                    title: '@Html.LabelFor(model => model.IsDeleted)', field: 'IsDeleted', width: 60, sortable: true,
                    formatter: function (value, row, index) {
                        if (value == true) {
                            return '<input type="checkbox" checked="true" onclick="return false;" />';
                        }
                        else {
                            return '<input type="checkbox" onclick="return false;" />';
                        }
                    }
                },*@
                {
                    title: '@Html.LabelFor(model => model.IsDeleted)', field: 'IsDeleted', width: 60, sortable: true, align: "center",
                    formatter: function (value, row, index) {
                        return $.GetYesOrNo(value);  //是否禁用图标（是/否）
                    }
                },
                { title: '@Html.LabelFor(model => model.AddDate)', field: 'AddDate', width: 140, sortable: true, formatter: function (value, rec) { if (value) { return dateConvert(value); } } },  //此处进行时间格式转换
                //如果上面用了这个field，则这里使用formatter也会变成上面的值，而达不到格式化的效果
                //{
                //    title: '操作', field: 'ID', width: 100,
                //    formatter:
                //    function (value, row, index) {
                //        return '<a href="#" onclick=ActionInfo.ModifyMethod("' + row.ID + '")>修改</a>';
                //        //showMyWindow("修改功能", "/ActionInfo/Modify?ID=" + row.ID, 800, 550, true);
                //    }
                //}
            ]]
        });
    }
    var ActionInfo = {
        //新增
        Add: function () {
            ActionInfo.Mutual("新增", "/ActionInfo/Edit");
        },

        //修改
        Modify: function () {
            var row = $("#myDataGrid").datagrid("getSelected");
            if (row) {
                ActionInfo.Mutual("修改", "/ActionInfo/Edit?ID=" + row.ID);
            }
            else { $.EasyuiSlide("请选择一条记录"); }
        },

        //实体操作
        Mutual: function (title, href) {
            $.ModelDialog({
                title: title, href: href, width: 320,
                handler: function () {
                    $.ModelForm({
                        validate: true, button: $(this),
                        id: "#form-model",
                        url: "/ActionInfo/Edit",
                        success: function (result) { ActionInfo.Reload(); }
                    });
                },
                onLoad: function () { ActionInfo.FormInit(); }
            });
        },

        //弹窗初始化
        FormInit: function () {
            //定义功能类型枚举下拉
            $("#ActionTypeNum").combobox({
                editable: false, width: 155, panelHeight: "auto",
                data: [
                    { value: "0", text: "权限标识" },
                    { value: "1", text: "功能按钮" }
                ]
            });
        },

        Enable: function () {
            ActionInfo.SetEnable("True");
        },

        Disable: function () {
            ActionInfo.SetEnable("False");
        },

        //设置启用或禁用
        SetEnable: function (isEnable) {
            var row = $("#myDataGrid").datagrid("getSelected");
            if (row) {
                $.post("/ActionInfo/SetEnable", { id: row.ID, isEnable: isEnable }, function (result) {
                    if (result.ResultType == 0) {
                        $.EasyuiSlide(result.Message);
                        ActionInfo.Reload();
                    }
                    else {
                        $.EasyuiMsg(result.Message);
                    }
                });
            }
            else { $.EasyuiSlide("请选择一条记录"); }
        },

        //删除
        Delete: function () {
            var arr = $('#myDataGrid').datagrid('getSelections');

            if (arr.length == 1) {
                $.messager.confirm('操作提示', "确认删除[ " + arr[0].ActionName + " ]吗？", function (r) {
                    if (r) {
                        $.post("/ActionInfo/Delete?ID=" + arr[0].ID, { query: arr.join(",") }, function (result) {
                            if (result.ResultType == 0) {  //0表示成功
                                //移除删除的数据
                                //$("#myTreeGrid").datagrid("reload");
                                //$("#myTreeGrid").datagrid("clearSelections");
                                //$.messager.alert('操作提示', '删除成功!', 'info');
                                $.EasyuiSlide(result.Message);
                                ActionInfo.Reload();
                            }
                            else {
                                $.EasyuiMsg(result.Message);
                            }
                        });
                    }
                });

            } else {
                //$.messager.alert('操作提示', '请选择一条数据!', 'warning');
                $.EasyuiMsg("请选择一条数据");
            }
            return false;
        },

        //向上
        Up: function () {
            ActionInfo.Order("Up");
        },

        //向下
        Down: function () {
            ActionInfo.Order("Down");
        },

        //向上或向下方法
        Order: function (order) {
            var row = $("#myDataGrid").datagrid("getSelected");
            if (row) {
                //id：识别当前记录；pid：识别涉及调整的记录集合；order：向上或向下
                $.post("/ActionInfo/SetOrder", { id: row.ID, order: order }, function (result) {
                    if (result.ResultType == 0) {
                        $.EasyuiSlide(result.Message);  //成功则右下角提示
                        ActionInfo.Reload();
                        //$("#myTreeGrid").treegrid("selectRecord", row.ID);  //重新选中对应ID的记录（此处不生效，原因不明，后续探究）
                    }
                    else {
                        $.EasyuiMsg(result.Message);  //失败则弹出框提示
                    }
                });
            }
            else { $.EasyuiSlide(nullrowmsg); }
        },

        //刷新
        Reload: function () {
            $("#myDataGrid").datagrid("reload");
        }
    }
</script>

<!--面板（从数据库取得菜单名称和图标等）-->
<div class="easyui-panel" @Html.Raw(ViewBag.PanelInfo)>
    <table id="myDataGrid" fit="true"></table>
    <!--数据列表（根据JS构造数据）-->
    <div id="myToolBar">@Html.Raw(ViewBag.ToolBarInfo)</div>
    <!--工具栏（从数据库取得菜单功能的名称和图标等）-->
</div>
